package com.example.demo.study.genericity;

import java.lang.reflect.ParameterizedType;

/**
 * 在继承一个泛型类或实现一个泛型接口时需要指定具体类型，指定了具体的类型后对子类而言它的父类或实现的接口就是参数化类型的，
 * 通过 Class 的 getGenericSuperclass 获取父类的类型时返回的类型为 ParameterizedType 的
 */
public class AppleHolder extends Hodler<Apple> {
    public AppleHolder(Apple val) {
        super(val);
    }

    public static void main(String[] args) {
        AppleHolder ah = new AppleHolder(new Apple());
        Apple a = ah.getVal();
        a.show();
        System.out.println(ah.getClass().getGenericSuperclass() instanceof ParameterizedType);
    }
}
